package com.test.socket;

import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;

/**
 * @Description
 * @Author xsd
 * @Date 2020/6/21 7:44
 * TCP协议是面向连接，可靠的，有序的，以字节流的方式发送数据。
 * 基于TCP协议实现网络通信的类有客户端的Socket类和服务器端的ServerSocket类
 * zj: ServerSocket_Socket [serverSocket.accept() ]  接收流 socket.getOutputStream() 响应流_socket.getOutputStream()
 *     clinet _ 写数据 socket.getOutputStream()
 */
public class Client {
    public static void main(String[] args) {
        try {
            //创建客户端Socket，指定服务器地址和端口
            Socket socket = new Socket("127.0.0.1", 8888);
            //建立连接后，获取输出流，向服务器端发送信息
            OutputStream os = socket.getOutputStream();
            //输出流包装为打印流
            PrintWriter pw = new PrintWriter(os);
            //向服务器端发送信息
            pw.write("用户名：zzh;密码：123");//写入内存缓冲区
            pw.flush();//刷新缓存，向服务器端输出信息
            socket.shutdownOutput();//关闭输出流

            //获取输入流，接收服务器端响应信息
            InputStream is = socket.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(is, "utf-8"));
            String data = null;
            while((data=br.readLine())!= null){
                System.out.println("我是客户端，服务器端提交信息为："+data);
            }
            //关闭其他资源
            socket.close();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
